package com.erp.erp_entitys.money.rsp;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author zjk
 * @version 1.0
 * @description 按合同应收款统计 回参
 * @date 2021-03-28 23:27
 */
public class CollectionStatistics4Rsp implements Serializable {
    /**
     * 外销合同号
     */
    private String contractNo;
    /**
     * 签约日期date
     */
    private Date signingDate;
    /**
     * 签约日期Str
     */
    private String signingDateStr;
    /**
     * 业务员
     */
    private String salesmanName;
    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 收款币种名称
     */
    private String currency;
    /**
     * 收款币种编码
     */
    private String currencyCode;
    /**
     * 人民币汇率
     */
    private BigDecimal rmbRate;
    /**
     * 美元汇率
     */
    private BigDecimal usdRate;
    /**
     * 应收货款是合同里的总金额
     */
    private BigDecimal totalContractAmount;
    /**
     *  应收货款(USD) (业务层计算)
     */
    private BigDecimal receivableUSD;
    /**
     *  应收折人民币 (业务层计算)
     */
    private BigDecimal receivableRMB;
    /**
     *  已收货款是收款表里的收汇
     */
    private BigDecimal collectionAmount;
    /**
     *  已收货款(USD) (业务层计算)
     */
    private BigDecimal receivedUSD;
    /**
     *  以折收人民币 (业务层计算)
     */
    private BigDecimal receivedRMB;
    /**
     * 应收货款-已收货款
     *  未收货款(USD) (业务层计算)
     */
    private BigDecimal uncollectedUSD;
    /**
     * 应收折人民币-以折收人民币
     *  未收折人民币 (业务层计算)
     */
    private BigDecimal uncollectedRMB;
    /**
     *  银行扣费 (业务层计算)
     */
    private BigDecimal foreignBankDeductions;
    /**
     *  银行扣费（USD） (业务层计算)
     */
    private BigDecimal foreignBankDeductionsUSD;
    /**
     *  银行扣费（RMB） (业务层计算)
     */
    private BigDecimal foreignBankDeductionsRMB;

    /**
     * 退税
     */
    private BigDecimal refundAmount;
    /**
     *  赔偿客户(USD) (业务层计算)
     */
    private BigDecimal compensateUSD;
    /**
     *  赔偿客户折人民币 (业务层计算)
     */
    private BigDecimal compensateRMB;
    /**
     * 实收金额就是收款表里的认领
     */
    private BigDecimal amountClaimed;
    /**
     *  实收货款(USD) (业务层计算)
     */
    private BigDecimal actualReceivedUSD;
    /**
     *  实收折人民币(业务层计算)
     */
    private BigDecimal actualReceivedRMB;
    /**
     *公司名称
     */
    private String signingCompanyName;
    /**
     *银行名称
     */
    private String bankName;
    /**
     * 合同币种
     */
    private String contractCurrency;
    /**
     * 合同币种编码
     */
    private String contractCurrencyCode;
    /**
     * 合同人民币汇率
     */
    private BigDecimal contractRmbRate;
    /**
     * 合同美金汇率
     */
    private BigDecimal contractUsdRate;


    public String getContractCurrencyCode() {
        return contractCurrencyCode;
    }

    public void setContractCurrencyCode(String contractCurrencyCode) {
        this.contractCurrencyCode = contractCurrencyCode;
    }

    public BigDecimal getContractRmbRate() {
        return contractRmbRate;
    }

    public void setContractRmbRate(BigDecimal contractRmbRate) {
        this.contractRmbRate = contractRmbRate;
    }

    public BigDecimal getContractUsdRate() {
        return contractUsdRate;
    }

    public void setContractUsdRate(BigDecimal contractUsdRate) {
        this.contractUsdRate = contractUsdRate;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public Date getSigningDate() {
        return signingDate;
    }

    public void setSigningDate(Date signingDate) {
        this.signingDate = signingDate;
    }

    public String getSigningDateStr() {
        return signingDateStr;
    }

    public void setSigningDateStr(String signingDateStr) {
        this.signingDateStr = signingDateStr;
    }


    public String getSalesmanName() {
        return salesmanName;
    }

    public void setSalesmanName(String salesmanName) {
        this.salesmanName = salesmanName;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public String getCurrencyCode() {
        return currencyCode;
    }

    public void setCurrencyCode(String currencyCode) {
        this.currencyCode = currencyCode;
    }

    public BigDecimal getRmbRate() {
        return rmbRate;
    }

    public void setRmbRate(BigDecimal rmbRate) {
        this.rmbRate = rmbRate;
    }

    public BigDecimal getUsdRate() {
        return usdRate;
    }

    public void setUsdRate(BigDecimal usdRate) {
        this.usdRate = usdRate;
    }

    public BigDecimal getTotalContractAmount() {
        return totalContractAmount;
    }

    public void setTotalContractAmount(BigDecimal totalContractAmount) {
        this.totalContractAmount = totalContractAmount;
    }

    public BigDecimal getReceivableUSD() {
        return receivableUSD;
    }

    public void setReceivableUSD(BigDecimal receivableUSD) {
        this.receivableUSD = receivableUSD;
    }

    public BigDecimal getReceivableRMB() {
        return receivableRMB;
    }

    public void setReceivableRMB(BigDecimal receivableRMB) {
        this.receivableRMB = receivableRMB;
    }

    public BigDecimal getCollectionAmount() {
        return collectionAmount;
    }

    public void setCollectionAmount(BigDecimal collectionAmount) {
        this.collectionAmount = collectionAmount;
    }

    public BigDecimal getReceivedUSD() {
        return receivedUSD;
    }

    public void setReceivedUSD(BigDecimal receivedUSD) {
        this.receivedUSD = receivedUSD;
    }

    public BigDecimal getReceivedRMB() {
        return receivedRMB;
    }

    public void setReceivedRMB(BigDecimal receivedRMB) {
        this.receivedRMB = receivedRMB;
    }

    public BigDecimal getUncollectedUSD() {
        return uncollectedUSD;
    }

    public void setUncollectedUSD(BigDecimal uncollectedUSD) {
        this.uncollectedUSD = uncollectedUSD;
    }

    public BigDecimal getUncollectedRMB() {
        return uncollectedRMB;
    }

    public void setUncollectedRMB(BigDecimal uncollectedRMB) {
        this.uncollectedRMB = uncollectedRMB;
    }

    public BigDecimal getForeignBankDeductions() {
        return foreignBankDeductions;
    }

    public void setForeignBankDeductions(BigDecimal foreignBankDeductions) {
        this.foreignBankDeductions = foreignBankDeductions;
    }

    public BigDecimal getForeignBankDeductionsUSD() {
        return foreignBankDeductionsUSD;
    }

    public void setForeignBankDeductionsUSD(BigDecimal foreignBankDeductionsUSD) {
        this.foreignBankDeductionsUSD = foreignBankDeductionsUSD;
    }

    public BigDecimal getForeignBankDeductionsRMB() {
        return foreignBankDeductionsRMB;
    }

    public void setForeignBankDeductionsRMB(BigDecimal foreignBankDeductionsRMB) {
        this.foreignBankDeductionsRMB = foreignBankDeductionsRMB;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getCompensateUSD() {
        return compensateUSD;
    }

    public void setCompensateUSD(BigDecimal compensateUSD) {
        this.compensateUSD = compensateUSD;
    }

    public BigDecimal getCompensateRMB() {
        return compensateRMB;
    }

    public void setCompensateRMB(BigDecimal compensateRMB) {
        this.compensateRMB = compensateRMB;
    }

    public BigDecimal getAmountClaimed() {
        return amountClaimed;
    }

    public void setAmountClaimed(BigDecimal amountClaimed) {
        this.amountClaimed = amountClaimed;
    }

    public BigDecimal getActualReceivedUSD() {
        return actualReceivedUSD;
    }

    public void setActualReceivedUSD(BigDecimal actualReceivedUSD) {
        this.actualReceivedUSD = actualReceivedUSD;
    }

    public BigDecimal getActualReceivedRMB() {
        return actualReceivedRMB;
    }

    public void setActualReceivedRMB(BigDecimal actualReceivedRMB) {
        this.actualReceivedRMB = actualReceivedRMB;
    }

    public String getSigningCompanyName() {
        return signingCompanyName;
    }

    public void setSigningCompanyName(String signingCompanyName) {
        this.signingCompanyName = signingCompanyName;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getContractCurrency() {
        return contractCurrency;
    }

    public void setContractCurrency(String contractCurrency) {
        this.contractCurrency = contractCurrency;
    }

    /**
     * 重写toString
     */
    @Override
    public String toString() {
        return "CollectionStatistics4Rsp{" +
                "contractNo='" + contractNo + '\'' +
                ", signingDate=" + signingDate +
                ", signingDateStr='" + signingDateStr + '\'' +
                ", salesmanName='" + salesmanName + '\'' +
                ", customerName='" + customerName + '\'' +
                ", currency='" + currency + '\'' +
                ", currencyCode='" + currencyCode + '\'' +
                ", rmbRate=" + rmbRate +
                ", usdRate=" + usdRate +
                ", totalContractAmount=" + totalContractAmount +
                ", receivableUSD=" + receivableUSD +
                ", receivableRMB=" + receivableRMB +
                ", collectionAmount=" + collectionAmount +
                ", receivedUSD=" + receivedUSD +
                ", receivedRMB=" + receivedRMB +
                ", uncollectedUSD=" + uncollectedUSD +
                ", uncollectedRMB=" + uncollectedRMB +
                ", foreignBankDeductions=" + foreignBankDeductions +
                ", foreignBankDeductionsUSD=" + foreignBankDeductionsUSD +
                ", foreignBankDeductionsRMB=" + foreignBankDeductionsRMB +
                ", refundAmount=" + refundAmount +
                ", compensateUSD=" + compensateUSD +
                ", compensateRMB=" + compensateRMB +
                ", amountClaimed=" + amountClaimed +
                ", actualReceivedUSD=" + actualReceivedUSD +
                ", actualReceivedRMB=" + actualReceivedRMB +
                ", signingCompanyName='" + signingCompanyName + '\'' +
                ", bankName='" + bankName + '\'' +
                ", contractCurrency='" + contractCurrency + '\'' +
                ", contractCurrencyCode='" + contractCurrencyCode + '\'' +
                ", contractRmbRate=" + contractRmbRate +
                ", contractUsdRate=" + contractUsdRate +
                '}';
    }
}
